As software programming languages have increased in power and capability, the programs written in these languages have become more complex. As a result, tools that make programming easier are in demand. One way to assist programming development efforts is through the use of an Integrated Development Environment (IDE). An IDE typically has one or more browsers and editors that facilitate editing multiple source files. In addition, the IDE may also provide a browser allowing the developer to navigate and view a class hierarchy for code written in object-oriented languages.
An auto-completion feature that completes a symbol name the programmer is typing is another popular programming tool. Before the existence of auto-completion features, to look up a definition of a complex data structure, a user located the file containing the data structure definition, or the class name in the class hierarchy browser. He or she then located the data structure definition in the file, which typically involved either scrolling through the file or using a text search capability to search through the file. Once the definition was located, the user swapped back and forth between the display containing the definition of the structure (either in a file display or a class hierarchy display) and the display in which the developer was currently adding code referencing the structure, and manually inserted the appropriate data structure reference into the code display.
An auto-completion feature may provide a convenient way to insert code to access types and their members, including fields, properties, and methods. In some auto-completion tools, marker characters such as periods, or other separator characters, may be detected by the auto-completion feature. When the user types one of the marker characters after the name of an entity having one or more accessible members, the auto-completion feature may start suggesting matches in a pop-up display. A user can either accept the suggestion by typing a statement completion character or continue typing the name. As the user continues typing, the auto-completion feature may filter the universe of available matching options until a single selection remains.
An auto-completion feature may be one of the most used and useful of available programming tools. An auto-completion feature may speed up software development by reducing the amount of name memorization and keyboard input. It may also reduce reliance on external documentation because interactive documentation on many symbols in the active scope may appear dynamically while programming. Even so, the amount of information provided in known auto-completion features is somewhat limited. Typically, an auto-completion feature simply displays a list of items sorted in alphabetical order. Typically, user interaction with the completion list feature is limited to selecting one of the items appearing on the list by highlighting it and pressing a statement completion character or key to auto-complete a statement in the source code.